package com.shujia.wyh.day26;

/*
    定义一个类实现Runnable接口
 */
public class TicketWindow2 implements Runnable {
    //定义100张票
    private static int tickets = 100;
    //    private Object obj = new Object();
    private Demo d = new Demo();
    int i = 0;

//    @Override
//    public void run() {
//        while (true){
//            synchronized (obj){
//                if(tickets>0){
//                    try {
//                        Thread.sleep(100);
//                    } catch (InterruptedException e) {
//                        e.printStackTrace();
//                    }
//                    System.out.println(Thread.currentThread().getName()+"正在出售第"+(tickets--)+"张票。。");
//                }
//            }
//        }
//    }

//    @Override
//    public void run() {
//        while (true) {
//            synchronized (d) {
//                if (tickets > 0) {
//                    try {
//                        Thread.sleep(100);
//                    } catch (InterruptedException e) {
//                        e.printStackTrace();
//                    }
//                    System.out.println(Thread.currentThread().getName() + "正在出售第" + (tickets--) + "张票。。");
//                }
//            }
//        }
//    }

    @Override
    public void run() {
        while (true) {
            if (i % 2 == 0) {

                synchronized (TicketWindow2.class) {
                    if (tickets > 0) {
                        try {
                            Thread.sleep(100);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println(Thread.currentThread().getName() + "正在出售第" + (tickets--) + "张票。。");
                    }
                }
            } else {
                sellTickets();
            }
            i++;
        }
    }

//    public synchronized void sellTickets() {
//        if (tickets > 0) {
//            try {
//                Thread.sleep(100);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//            System.out.println(Thread.currentThread().getName() + "正在出售第" + (tickets--) + "张票。。");
//        }
//    }

    public synchronized static void sellTickets() {
        if (tickets > 0) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + "正在出售第" + (tickets--) + "张票。。");
        }
    }
}
